1. Field of the Invention
This invention relates to computer systems, and particularly to storage-pre-alignment and conversions for Packed Decimal formatted data of data coded according to the EBCDIC, ASCII and Unicode Basic Latin standard formats.
2. Description of Background
For computer architectures such as IBM's Enterprise Systems Architecture Modal Extensions (ESAME), main memory storage is byte addressable, requiring the results of an operation to be byte aligned and merged with storage data before it can be written to memory. In a high frequency pipelined processor design there isn't enough time to transmit results from the execution unit to the data cache, align it, and merge it for storage in a single cycle. Adding a separate stage for alignment can adversely effect performance, particularly if alignment is not necessary for many of the operations (results are double-word aligned with storage). Therefore, the alignment process often occurs during instruction execution. For multi-cycle operations this often means the instruction will require at least one additional cycle to execute, and may require several additional cycles if it's necessary to align and store multiple double-words of data. Byte alignment for storage is particularly important when working with strings of data such as EBCDIC, ASCII, or Unicode Basic Latin.
Furthermore the performance of arithmetic operations on decimal data stored in these formats are important for commercial workloads.
The Unicode Basic Latin data format consists of two bytes of data for each character. The EBCDIC and ASCII data formats both consists of one byte for each character. When these formats contain numerical data that are to be used as operands for decimal arithmetic, they must first be converted to a packed decimal format, which consists of a sequence of BCD numeric digits followed by a BCD sign digit. Likewise, once the computation on the data has been completed, the results must be converted back into the appropriate data format (EBCDIC, ASCII, or Unicode Basic Latin).